A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the United States Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
The present invention relates to a method and system for providing event notification between software application program objects.
Most computer implemented software systems include a plurality of applications, each programmed to perform a specific function. An application is composed of several programs which in turn are composed of several modules or objects. In general, each of the program objects must, at one time or another, communicate information to another program object regarding events which occur within or under control of the object.
For general reference see Comer, Douglas E and Stevens, David L., Internetworking with TCP/IP, vol. III, Prentice-Hall, (1993); PIPES Platform User""s Guide and Reference Maual, PeerLogic, Inc., (1993); xe2x80x9cX/Open Transport Interface (XTI)xe2x80x9d, X/Open CAE Specification, X/Open Company limited, (1992); Stevens, W. Richard, Unix Network Programming, Prentice-Hall, (1990); Common Programming Interface Communications Reference, Fourth Edition, IBM, (1991); Schmidt, Douglas, xe2x80x9cConcurrent O-O Network Programming With C++xe2x80x9d, C++ World, 1994; and Bach, Maurice J., The Design of the Unix Operating System, Prentice-Hall, (1986).
Various problems exists, however, in managing and controlling these event notifications, especially as the number of intercommunicating objects and as the number of events which need to be communicated increase. These problems are especially acute when the objects are not included within the same application, when the objects are not executing within the same address space or when the objects are not even on the same computer. For example, an object included within a personnel system must provide event notification to another object which is included within an accounting system.
These types of systems can be described in terms of object models, functional models and dynamic models as discussed by James Rumbaugh et al. in the book Object-Oriented Modeling and Design published in 1991 by Prentice-Hall (the xe2x80x9cOOMDxe2x80x9d) which is incorporated by reference in its entirety. According to the book OOMD, an object model of a system describes the object types which comprise the system and also shows the relationships between the object types. A functional model of the system shows the processes and data structures of the system and the flow of data therebetween but does not indicate the sequence of processing. The dynamic model of the system does show the sequence of processing of the system. That sequencing is shown primarily as transitions of the object types from one state to another.
The object types used to describe the system using the methodology set forth in the book OOMD include associated data structures and behaviors (or operations). Instantiations of an object type are referred to as objects or object instances. Instantiations of the data structures and behaviors associated with an object type are referred to as attributes and methods, respectively. Execution of the methods associated with a behavior or generation of an event can transition the associated object instances from one state to another. Instantiations of object types, data structures and behaviors occur, in general, when an application requests services from the system.
Thus, what is needed is a method and system for providing managed, controlled event notification between a plurality of software application program objects.
The present invention is a method and system which provide event notification between a first software application program object and a second software application program object which includes two or more states where the event is associated with a transition of the second application program object from one state to another state.
The invention includes a first means for providing a set of news types associated with one or more event types, each of which describes an event which occurs within or under control of the second application program object during the transition of the second application program object from one state to another state.
The present invention also includes a second means for generating a set of interests, each of which associates the first application program object with one of the news types included in the set of news types.
The first means is also operable to generate, in response to the transition of the second application program object from one state to another, a news object describing the event of one of the event types associated with the transition of the second application program object from one state to another.
The present invention further includes a third means for associating the first application program object with a dispatcher and for dispatching the news object to the first application program object using the dispatcher in accordance with the interest of the first application program object in the news type associated with the event described by the news object thus providing notification of the event to the first application program object.